/**
 * @file    drv_gpio.h
 * @brief   gpio驱动
 * @author  Liuwei
 * @version 1.0.1
 * @date    2023-04-18
 * 
 * @copyright Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version   <th>Author   <th>Description
 * <tr><td>2023-04-18 <td>1.0.1     <td>Liuwei   <td>首次创建
 * </table>
 */

#ifndef __DRV_GPIO_H_
#define __DRV_GPIO_H_

/* File Includes -------------------------------------------------------------*/
#include "mcu_type.h"
#include "drv_gpio_pcfg.h"

/* Cplusplus -----------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif

/* Macro/Define/Typedef ------------------------------------------------------*/
typedef enum
{
	GPIO_RESET = 0, 
	GPIO_SET
}GPIO_STATE;

#define  GPIO_PORT      GPIO_T *
#define  GPIO_PIN       uint32_t
/* @brief */

/* Variables -----------------------------------------------------------------*/

/*******************************************************************************
 * public API List
 ******************************************************************************/
GPIO_STATE drv_gpio_get_intput(GPIO_PORT port, GPIO_PIN pin);
void drv_gpio_cfg_mode(GPIO_PORT port, GPIO_PIN pin, uint32_t mode);
void drv_gpio_reset_pin(GPIO_PORT port, GPIO_PIN pin);
void drv_gpio_set_pin(GPIO_PORT port, GPIO_PIN pin);
void drv_gpio_toggle_pin(GPIO_PORT port, GPIO_PIN pin);
GPIO_STATE drv_gpio_read_pin(GPIO_PORT port, GPIO_PIN pin);

GPIO_STATE drv_gpio_read_out_pin(GPIO_T *port, uint32_t pin);
/*! @} End of Interface API List */

#ifdef __cplusplus
}
#endif

#endif  /* #ifndef __DRV_GPIO_H_ */
/********** Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD *********/

